<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>QSculpt: Subdivision Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">QSculpt
   &#160;<span id="projectnumber">0.0.1a</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">Subdivision Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Subdivision" --><!-- doxytag: inherits="ISurface" -->
<p><code>#include &lt;<a class="el" href="_subdivision_8h_source.html">Subdivision.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Subdivision:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_subdivision.png" usemap="#Subdivision_map" alt=""/>
  <map id="Subdivision_map" name="Subdivision_map">
<area href="class_i_surface.html" alt="ISurface" shape="rect" coords="174,0,251,24"/>
<area href="class_box.html" alt="Box" shape="rect" coords="0,112,77,136"/>
<area href="class_mesh.html" alt="Mesh" shape="rect" coords="87,112,164,136"/>
<area href="class_plane.html" alt="Plane" shape="rect" coords="174,112,251,136"/>
<area href="class_quad.html" alt="Quad" shape="rect" coords="261,112,338,136"/>
<area href="class_sphere.html" alt="Sphere" shape="rect" coords="348,112,425,136"/>
</map>
 </div></div>

<p><a href="class_subdivision-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision_1_1_edge_iterator.html">EdgeIterator</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision_1_1_face_iterator.html">FaceIterator</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_subdivision_1_1_impl.html">Impl</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision_1_1_vertex_iterator.html">VertexIterator</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a606080f14b61791afa2e670890623e60">iid</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a0949f2d5f7b0b9ebdf6ee4fd56b31923">hasChanged</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4986d2573fc749af728fcdddb412215e"></a><!-- doxytag: member="Subdivision::setChanged" ref="a4986d2573fc749af728fcdddb412215e" args="(bool val)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setChanged</b> (bool val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab576baa3ff1b9bf70474dbdbccb51db1"></a><!-- doxytag: member="Subdivision::setScene" ref="ab576baa3ff1b9bf70474dbdbccb51db1" args="(Scene *scene)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setScene</b> (<a class="el" href="class_scene.html">Scene</a> *scene)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a127f7766c4ecdf0ff9907a8ca81b6f9a"></a><!-- doxytag: member="Subdivision::getScene" ref="a127f7766c4ecdf0ff9907a8ca81b6f9a" args="() const " -->
virtual <a class="el" href="class_scene.html">Scene</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>getScene</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Point3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#adc3a82a47ea0e77a3778f58a882ffad1">getPosition</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#aa8e37223285fbc59636cd219e8e7e18c">displace</a> (const Point3 &amp;delta)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a0a42b77c8e98ba4c92f99c17a20c41c5">getPosition</a> (float *x, float *y, float *z) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#ac901d2463ec198b49af6250d2ecc833a">setOrientation</a> (float rotX, float rotY, float rotZ)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#aa0ad967a3b4836bf644685bff65f7180">orientation</a> (float &amp;rotX, float &amp;rotY, float &amp;rotZ)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a973635b6b3fdc69d1fa4bc6e7e696df9">setPosition</a> (float x, float y, float z)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a27cf8a3764126aab4bcd34ea2a075072">setPosition</a> (const Point3 &amp;position)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37c0498cdaa94eabf2018299f1fa9ca2"></a><!-- doxytag: member="Subdivision::transform" ref="a37c0498cdaa94eabf2018299f1fa9ca2" args="() const " -->
virtual Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><b>transform</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abece13bad5c919b800fda0c3c390ded0"></a><!-- doxytag: member="Subdivision::transform" ref="abece13bad5c919b800fda0c3c390ded0" args="()" -->
virtual Eigen::Affine3f &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>transform</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3c22fafa94e5ae67ad6c761d4a2a734"></a><!-- doxytag: member="Subdivision::setTransform" ref="aa3c22fafa94e5ae67ad6c761d4a2a734" args="(const Eigen::Affine3f &amp;transform)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setTransform</b> (const Eigen::Affine3f &amp;transform)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classgeometry_1_1_a_a_b_b.html">geometry::AABB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a60c478c5364fe2120ac8c7bac5073572">getBoundingBox</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#af8533079d416d887dca4b51ae7c24b1e">setColor</a> (const <a class="el" href="class_color.html">Color</a> &amp;color)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_color.html">Color</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#af479cfc0f8330c799452b8c6042310f7">getColor</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#ad5338cd947c264e58a34d4acd48a700d">setSelected</a> (bool val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a06fde78c20ca85a1bd8c7c4e99c286b6">isSelected</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a04255aedafb7a45b5a6790af7cda4bc6">addVertex</a> (const Point3 &amp;point)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a33b191b665e6836ddb731efc957c648b">addVertex</a> (<a class="el" href="class_vertex.html">Vertex</a> *v)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a397d5b1e2cb9c75b827d026d82bff0b8">removeVertex</a> (int id)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#ac91ef5c002950d9cd26593a3984a4bcd">getVertex</a> (int index)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="class_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a665c20a74ff36151277212f132f75ce4">getVertex</a> (int index) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#abefbe6ad2b287feffd906328dd5dce66">getNumVertices</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5dfed0fa35d0382626b3764d29552c28"></a><!-- doxytag: member="Subdivision::addEdge" ref="a5dfed0fa35d0382626b3764d29552c28" args="(const Edge &amp;edge)" -->
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>addEdge</b> (const <a class="el" href="class_edge.html">Edge</a> &amp;edge)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad690f4a53a8f11f664735a929e3067cb"></a><!-- doxytag: member="Subdivision::addEdge" ref="ad690f4a53a8f11f664735a929e3067cb" args="(int v1, int v2)" -->
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>addEdge</b> (int v1, int v2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#ada33438646e53ae8018140fce1d17ddd">addFace</a> (const QVector&lt; int &gt; &amp;vertexIndexList)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a1686d1ab48a093bc3a689adfeec61c8c">replaceFace</a> (int index, const QVector&lt; int &gt; &amp;vertexIndexList)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#ad09f162899628f6f6f26760a1f77bbc5">removeFace</a> (int id)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a7ba1c88da6ba03e7e0432d7162e509e2">getNumFaces</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_face.html">Face</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a27a889e1a1aad983482b2c4952982580">getFace</a> (int index)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7be254426bdc1e955ab9dfd1454d0df5"></a><!-- doxytag: member="Subdivision::getFaceIndexAtPoint" ref="a7be254426bdc1e955ab9dfd1454d0df5" args="(const Point3 &amp;p) const " -->
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>getFaceIndexAtPoint</b> (const Point3 &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c3e81275e912923deaa8cd8d4e14e2b"></a><!-- doxytag: member="Subdivision::getClosestPointAtPoint" ref="a2c3e81275e912923deaa8cd8d4e14e2b" args="(const Point3 &amp;p) const " -->
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>getClosestPointAtPoint</b> (const Point3 &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e61c650b888c0105c5ca0e5cf34b7c7"></a><!-- doxytag: member="Subdivision::getPointsInRadius" ref="a7e61c650b888c0105c5ca0e5cf34b7c7" args="(const Point3 &amp;p, float radius) const " -->
virtual QVector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>getPointsInRadius</b> (const Point3 &amp;p, float radius) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2c8af3ac3b74415a541b20377d0be26"></a><!-- doxytag: member="Subdivision::adjustPointNormal" ref="ad2c8af3ac3b74415a541b20377d0be26" args="(int index)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>adjustPointNormal</b> (int index)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87583c2774a932368ceb13fa08128e0a"></a><!-- doxytag: member="Subdivision::lock" ref="a87583c2774a932368ceb13fa08128e0a" args="() const " -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>lock</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b05994384e37bf08f5e1275d2ba938f"></a><!-- doxytag: member="Subdivision::unlock" ref="a4b05994384e37bf08f5e1275d2ba938f" args="() const " -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>unlock</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1ddef2cd2ad9ca1fa6a7712ec86604b"></a><!-- doxytag: member="Subdivision::addResolutionLevel" ref="aa1ddef2cd2ad9ca1fa6a7712ec86604b" args="()" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>addResolutionLevel</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a185bff48f95a4f50c70cefed1b07b95a"></a><!-- doxytag: member="Subdivision::removeResolutionLevel" ref="a185bff48f95a4f50c70cefed1b07b95a" args="(int level)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>removeResolutionLevel</b> (int level)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18681a09e63739831f33850d0131f263"></a><!-- doxytag: member="Subdivision::setWorkingResolutionLevel" ref="a18681a09e63739831f33850d0131f263" args="(int level)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setWorkingResolutionLevel</b> (int level)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0da97ee5af387d1a2ddc4b852c5001fd"></a><!-- doxytag: member="Subdivision::getWorkingResolutionLevel" ref="a0da97ee5af387d1a2ddc4b852c5001fd" args="()" -->
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>getWorkingResolutionLevel</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a082b7c9c74e1ae5dce58d5474b1d67ee"></a><!-- doxytag: member="Subdivision::getSelectedPoints" ref="a082b7c9c74e1ae5dce58d5474b1d67ee" args="() const " -->
virtual QVector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>getSelectedPoints</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaaf5f129ec3555b295cfcff3ef401b7d"></a><!-- doxytag: member="Subdivision::setSelectedPoints" ref="aaaf5f129ec3555b295cfcff3ef401b7d" args="(const QVector&lt; int &gt; &amp;indicesArray)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setSelectedPoints</b> (const QVector&lt; int &gt; &amp;indicesArray)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_vertex.html">Vertex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a57e134c89c965fb6038f180c89bb496d">vertexIterator</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d224b74eafc074f03d609b2e3579770"></a><!-- doxytag: member="Subdivision::constVertexIterator" ref="a1d224b74eafc074f03d609b2e3579770" args="() const " -->
virtual <a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_vertex.html">Vertex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>constVertexIterator</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_face.html">Face</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a7eeefe30c943e6a878edb68cd1e006d6">faceIterator</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_face.html">Face</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a7c5a364941fe1368f8671872c7d34fb7">constFaceIterator</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7abfbc06bf4a2d4dca83a9f1d8f8dd95"></a><!-- doxytag: member="Subdivision::edgeIterator" ref="a7abfbc06bf4a2d4dca83a9f1d8f8dd95" args="()" -->
virtual <a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_edge.html">Edge</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>edgeIterator</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a378eaeb879b7f55b99212f08b77ee5e9"></a><!-- doxytag: member="Subdivision::constEdgeIterator" ref="a378eaeb879b7f55b99212f08b77ee5e9" args="() const " -->
virtual <a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_edge.html">Edge</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>constEdgeIterator</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Point3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#acd401d3e82aaf483885b9d3ac0a14f13">localToWorldCoords</a> (const Point3 &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Point3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a02f1ff1defc98f28bc58cc6f3419bead">worldToLocalCoords</a> (const Point3 &amp;p) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a890f5ef8f1201db33dfb445a764bae93"></a><!-- doxytag: member="Subdivision::vertexIterator" ref="a890f5ef8f1201db33dfb445a764bae93" args="(int level)" -->
<a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_vertex.html">Vertex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>vertexIterator</b> (int level)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae48ddb143817f567ecd0fadca80aca5c"></a><!-- doxytag: member="Subdivision::constVertexIterator" ref="ae48ddb143817f567ecd0fadca80aca5c" args="(int level) const " -->
<a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_vertex.html">Vertex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>constVertexIterator</b> (int level) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6db102d6458aaeb2a1d131003184996"></a><!-- doxytag: member="Subdivision::faceIterator" ref="ac6db102d6458aaeb2a1d131003184996" args="(int level)" -->
<a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_face.html">Face</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>faceIterator</b> (int level)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d61172c6b9e621b605b4992d8712ab0"></a><!-- doxytag: member="Subdivision::constFaceIterator" ref="a2d61172c6b9e621b605b4992d8712ab0" args="(int level) const " -->
<a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_face.html">Face</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>constFaceIterator</b> (int level) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a8f5328bb66c0fff0d74b60240b168b02">printMemoryInfo</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subdivision.html#a14ac66e7dbd38389f1b97b188625bb8f">initPoints</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac5f2ff3ded42cc0ea062af49a8552ce"></a><!-- doxytag: member="Subdivision::addEdge" ref="aac5f2ff3ded42cc0ea062af49a8552ce" args="(Vertex *v1, Vertex *v2)" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>addEdge</b> (<a class="el" href="class_vertex.html">Vertex</a> *v1, <a class="el" href="class_vertex.html">Vertex</a> *v2)</td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac54aeb14d596a9d60aecfac7deade8c2"></a><!-- doxytag: member="Subdivision::VertexIterator" ref="ac54aeb14d596a9d60aecfac7deade8c2" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><b>VertexIterator</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0465315dba883d93122873f15eb39c0d"></a><!-- doxytag: member="Subdivision::FaceIterator" ref="a0465315dba883d93122873f15eb39c0d" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><b>FaceIterator</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a265a85b438f4a316627f37c1c2d442e8"></a><!-- doxytag: member="Subdivision::EdgeIterator" ref="a265a85b438f4a316627f37c1c2d442e8" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeIterator</b></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Class that implement subdivision surfaces. </p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ada33438646e53ae8018140fce1d17ddd"></a><!-- doxytag: member="Subdivision::addFace" ref="ada33438646e53ae8018140fce1d17ddd" args="(const QVector&lt; int &gt; &amp;vertexIndexList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Subdivision::addFace </td>
          <td>(</td>
          <td class="paramtype">const QVector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>vertexIndexes</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Add a triangle to the object. The triangle is formed by the vertices passed as arguments. The vertices are passed by means of their ID</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v1</td><td>id of the first vertex that form the triangle. </td></tr>
    <tr><td class="paramname">v2</td><td>id of the first vertex that form the triangle. </td></tr>
    <tr><td class="paramname">v3</td><td>id of the first vertex that form the triangle.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>triangle ID </dd></dl>

<p>Implements <a class="el" href="class_i_surface.html#a91e7fbc0464488d68c3515a17fae1cf2">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a04255aedafb7a45b5a6790af7cda4bc6"></a><!-- doxytag: member="Subdivision::addVertex" ref="a04255aedafb7a45b5a6790af7cda4bc6" args="(const Point3 &amp;point)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Subdivision::addVertex </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Add point to object. The point added is in local coordinates ( i.e. relative to object's origin.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">point</td><td>point to add to the object. The point is in local coords.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ID of the new point. </dd></dl>

<p>Implements <a class="el" href="class_i_surface.html#acbc361660b6540a54e7756ffa65dcf58">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a33b191b665e6836ddb731efc957c648b"></a><!-- doxytag: member="Subdivision::addVertex" ref="a33b191b665e6836ddb731efc957c648b" args="(Vertex *v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Subdivision::addVertex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_vertex.html">Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Add vertex v to this object. The object will mantain the reference to the vertex. Do not delete the vertex while the object has a reference to it.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>vertex to add to the object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the id of the vertex inside the object. </dd></dl>

<p>Implements <a class="el" href="class_i_surface.html#a67e08909ca9ac1a6514d21601586e084">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a7c5a364941fe1368f8671872c7d34fb7"></a><!-- doxytag: member="Subdivision::constFaceIterator" ref="a7c5a364941fe1368f8671872c7d34fb7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_face.html">Face</a> &gt; Subdivision::constFaceIterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return a const iterator over the faces that contained in this object. </p>

<p>Implements <a class="el" href="class_i_surface.html#a67a32caec0e8d348a10eecf6f7c2c3a4">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="aa8e37223285fbc59636cd219e8e7e18c"></a><!-- doxytag: member="Subdivision::displace" ref="aa8e37223285fbc59636cd219e8e7e18c" args="(const Point3 &amp;delta)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::displace </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>delta</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Move the object. Move the object relative to the actual position.</p>
<p>new_position = current_position + delta.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">delta</td><td>Point that contains the amount of displacement for each axis. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#affbd60ef9ed26e01b55c28facc8bdd8b">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a7eeefe30c943e6a878edb68cd1e006d6"></a><!-- doxytag: member="Subdivision::faceIterator" ref="a7eeefe30c943e6a878edb68cd1e006d6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_face.html">Face</a> &gt; Subdivision::faceIterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a face iterator to traverse over all the faces of this object. </p>

<p>Implements <a class="el" href="class_i_surface.html#a42b6325545e89a172a7d0585b9f03f2d">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a60c478c5364fe2120ac8c7bac5073572"></a><!-- doxytag: member="Subdivision::getBoundingBox" ref="a60c478c5364fe2120ac8c7bac5073572" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classgeometry_1_1_a_a_b_b.html">geometry::AABB</a> &amp; Subdivision::getBoundingBox </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the bounding box of the object. </p>

<p>Implements <a class="el" href="class_i_surface.html#a571d61b4e42945db601315b308ce0480">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="af479cfc0f8330c799452b8c6042310f7"></a><!-- doxytag: member="Subdivision::getColor" ref="af479cfc0f8330c799452b8c6042310f7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_color.html">Color</a> Subdivision::getColor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Gets the object base color. Used as vertex color, line color, shading color, etc.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>color of the object. </dd></dl>

<p>Implements <a class="el" href="class_i_surface.html#aa10cc801aa8f0ce9ccfada6a201b8978">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a27a889e1a1aad983482b2c4952982580"></a><!-- doxytag: member="Subdivision::getFace" ref="a27a889e1a1aad983482b2c4952982580" args="(int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_face.html">Face</a> * Subdivision::getFace </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the face at the position index. </p>

<p>Implements <a class="el" href="class_i_surface.html#af65eb6a9c34d69b4901f4ec0b38ba575">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a7ba1c88da6ba03e7e0432d7162e509e2"></a><!-- doxytag: member="Subdivision::getNumFaces" ref="a7ba1c88da6ba03e7e0432d7162e509e2" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Subdivision::getNumFaces </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the number of faces that the object has.</p>
<p>TODO: This may not belong here as is specific to mesh surfaces. </p>

<p>Implements <a class="el" href="class_i_surface.html#a6b377d95b29a4605f8788df6a4a10aa1">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="abefbe6ad2b287feffd906328dd5dce66"></a><!-- doxytag: member="Subdivision::getNumVertices" ref="abefbe6ad2b287feffd906328dd5dce66" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Subdivision::getNumVertices </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Gets the number of vertices </p>

<p>Implements <a class="el" href="class_i_surface.html#a494fde936bf15d00021ef4ed6ea50917">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="adc3a82a47ea0e77a3778f58a882ffad1"></a><!-- doxytag: member="Subdivision::getPosition" ref="adc3a82a47ea0e77a3778f58a882ffad1" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Point3 Subdivision::getPosition </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the object's position. Overloaded method.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>position of the object. </dd></dl>

<p>Implements <a class="el" href="class_i_surface.html#a3f218240367586c7ff7078e991a06060">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a0a42b77c8e98ba4c92f99c17a20c41c5"></a><!-- doxytag: member="Subdivision::getPosition" ref="a0a42b77c8e98ba4c92f99c17a20c41c5" args="(float *x, float *y, float *z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::getPosition </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the object's position.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>Object x-axis position. </td></tr>
    <tr><td class="paramname">y</td><td>Object y-axis position. </td></tr>
    <tr><td class="paramname">z</td><td>Object z-axis position. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#a325e898d81895706e22e331a778beafa">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="ac91ef5c002950d9cd26593a3984a4bcd"></a><!-- doxytag: member="Subdivision::getVertex" ref="ac91ef5c002950d9cd26593a3984a4bcd" args="(int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_vertex.html">Vertex</a> * Subdivision::getVertex </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iid</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the vertex with the instance ID iid. </p>

<p>Implements <a class="el" href="class_i_surface.html#aec9d88f3e524a8c7744643f7ad2a8a6d">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a665c20a74ff36151277212f132f75ce4"></a><!-- doxytag: member="Subdivision::getVertex" ref="a665c20a74ff36151277212f132f75ce4" args="(int index) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_vertex.html">Vertex</a> * Subdivision::getVertex </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iid</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the vertex with the instance ID iid. </p>

<p>Implements <a class="el" href="class_i_surface.html#af86f540d2ce7ff69a8fa0f691b43854e">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a0949f2d5f7b0b9ebdf6ee4fd56b31923"></a><!-- doxytag: member="Subdivision::hasChanged" ref="a0949f2d5f7b0b9ebdf6ee4fd56b31923" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Subdivision::hasChanged </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get a buffer with all the vertex data. This data is used to render the mesh using VBOs.</p>
<p>The function return a pointer to the buffer data. The pointer should be considerated temporal (do not store the pointer for later use). This is because when inserting new vertices to the mesh, a new allocation may be needed.</p>
<p>The function also returns the number of vertices contained in the buffer. Get a buffer with all the normal data. This data is meant to be used to create VBOs.</p>
<p>The function return a pointer to the buffer data. The pointer should be considerated temporal (do not store the pointer for later use). This is because when inserting new vertices to the mesh, a new allocation may be needed.</p>
<p>The function also returns the number of vertices contained in the buffer. </p>

<p>Implements <a class="el" href="class_i_surface.html#a6e0d4a5e3fcc3d79d02ed7924fb7faee">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a606080f14b61791afa2e670890623e60"></a><!-- doxytag: member="Subdivision::iid" ref="a606080f14b61791afa2e670890623e60" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint Subdivision::iid </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Instance id of the surface </p>

<p>Implements <a class="el" href="class_i_surface.html#ae78b51ad4cf1dd2eea18ed5b386d80f4">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a14ac66e7dbd38389f1b97b188625bb8f"></a><!-- doxytag: member="Subdivision::initPoints" ref="a14ac66e7dbd38389f1b97b188625bb8f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::initPoints </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initializes the points vector. </p>

<p>Reimplemented in <a class="el" href="class_quad.html#a60a993506197c1d2c358de08dcbe534b">Quad</a>, <a class="el" href="class_box.html#ae17d0e60184c658793dfcf356575c3d5">Box</a>, and <a class="el" href="class_sphere.html#ad9a2358b193bcfe0771366695624a7b3">Sphere</a>.</p>

</div>
</div>
<a class="anchor" id="a06fde78c20ca85a1bd8c7c4e99c286b6"></a><!-- doxytag: member="Subdivision::isSelected" ref="a06fde78c20ca85a1bd8c7c4e99c286b6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Subdivision::isSelected </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the selected state of the object.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the object is selected, otherwise, false. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_subdivision.html#ad5338cd947c264e58a34d4acd48a700d">setSelected</a> </dd></dl>

<p>Implements <a class="el" href="class_i_surface.html#a62c36e72a939cc47af4fb7f5a8e7129b">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="acd401d3e82aaf483885b9d3ac0a14f13"></a><!-- doxytag: member="Subdivision::localToWorldCoords" ref="acd401d3e82aaf483885b9d3ac0a14f13" args="(const Point3 &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Point3 Subdivision::localToWorldCoords </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function applies a transformation to convert a coordinate in the local coordinate system to the world coordinate system.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>point to convert to world coordinate system.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a point in the world coornidate system. </dd></dl>

<p>Implements <a class="el" href="class_i_surface.html#a7c441f7cd1ef54146fcf756ef2bf50a7">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="aa0ad967a3b4836bf644685bff65f7180"></a><!-- doxytag: member="Subdivision::orientation" ref="aa0ad967a3b4836bf644685bff65f7180" args="(float &amp;rotX, float &amp;rotY, float &amp;rotZ)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::orientation </td>
          <td>(</td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>rotX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>rotY</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>rotZ</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the orientation of the object in Euler angle </p>

<p>Implements <a class="el" href="class_i_surface.html#a8f10a9bc973d60aba70cfc51b8a28f33">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a8f5328bb66c0fff0d74b60240b168b02"></a><!-- doxytag: member="Subdivision::printMemoryInfo" ref="a8f5328bb66c0fff0d74b60240b168b02" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::printMemoryInfo </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Debugging function used to print the memory usage of this object. </p>

</div>
</div>
<a class="anchor" id="ad09f162899628f6f6f26760a1f77bbc5"></a><!-- doxytag: member="Subdivision::removeFace" ref="ad09f162899628f6f6f26760a1f77bbc5" args="(int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::removeFace </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Remove the triangle from the object. The points or vertices that compound the triangle are not removed from the object. The points could be rendered acording to the drawing mode.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>triangle ID to remove. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#af50649c2dc98f48ce58ab67700a58952">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a397d5b1e2cb9c75b827d026d82bff0b8"></a><!-- doxytag: member="Subdivision::removeVertex" ref="a397d5b1e2cb9c75b827d026d82bff0b8" args="(int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::removeVertex </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Remove a point from the object. If the point form part of a triangle then that triangle should be removed from the object.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>ID of the point to delete. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#acb9d7fe923011c6fabe64499e2fad39c">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a1686d1ab48a093bc3a689adfeec61c8c"></a><!-- doxytag: member="Subdivision::replaceFace" ref="a1686d1ab48a093bc3a689adfeec61c8c" args="(int index, const QVector&lt; int &gt; &amp;vertexIndexList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::replaceFace </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const QVector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>vertexIndexList</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Replace a triangle with new indices to existing points. </p>

<p>Implements <a class="el" href="class_i_surface.html#a20192dad54574165894e55cfe0dcb857">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="af8533079d416d887dca4b51ae7c24b1e"></a><!-- doxytag: member="Subdivision::setColor" ref="af8533079d416d887dca4b51ae7c24b1e" args="(const Color &amp;color)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::setColor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_color.html">Color</a> &amp;&#160;</td>
          <td class="paramname"><em>color</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets the object base color. Used as vertex color, line color, shading color, etc.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">color</td><td>color of the object. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#af199f348a53404b2a9afe4d53320967d">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="ac901d2463ec198b49af6250d2ecc833a"></a><!-- doxytag: member="Subdivision::setOrientation" ref="ac901d2463ec198b49af6250d2ecc833a" args="(float rotX, float rotY, float rotZ)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::setOrientation </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>rotX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>rotY</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>rotZ</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Rotate the object. This rotation is applied over the local object axis.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">rotX</td><td>Rotation angle in x-axis. </td></tr>
    <tr><td class="paramname">rotY</td><td>Rotation angle in y-axis. </td></tr>
    <tr><td class="paramname">rotZ</td><td>Rotation angle in z-axis. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#a1b2bcf36d9260ff21b27519e6da7a715">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a973635b6b3fdc69d1fa4bc6e7e696df9"></a><!-- doxytag: member="Subdivision::setPosition" ref="a973635b6b3fdc69d1fa4bc6e7e696df9" args="(float x, float y, float z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::setPosition </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the object's position.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>Object's x position </td></tr>
    <tr><td class="paramname">y</td><td>Object's y postion </td></tr>
    <tr><td class="paramname">z</td><td>Object's z position </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#a1a37c46d3bdaf293185528b126d9414f">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a27cf8a3764126aab4bcd34ea2a075072"></a><!-- doxytag: member="Subdivision::setPosition" ref="a27cf8a3764126aab4bcd34ea2a075072" args="(const Point3 &amp;position)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::setPosition </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>position</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the object's position. Overloaded method.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">position</td><td>Object position. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#abf512c806506d38121bd19b5945edfa5">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="ad5338cd947c264e58a34d4acd48a700d"></a><!-- doxytag: member="Subdivision::setSelected" ref="ad5338cd947c264e58a34d4acd48a700d" args="(bool val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Subdivision::setSelected </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Mark the object as selected. This property is used by the renderers to mark selected objects (for example draw a bounding box around the object)</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>pass true to set the object as selected </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_i_surface.html#a308ae3492b08adf81eb71603cc9c9e77">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a57e134c89c965fb6038f180c89bb496d"></a><!-- doxytag: member="Subdivision::vertexIterator" ref="a57e134c89c965fb6038f180c89bb496d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_iterator.html">Iterator</a>&lt; <a class="el" href="class_vertex.html">Vertex</a> &gt; Subdivision::vertexIterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a vertex iterator to traverse over all the vertices in this object. </p>

<p>Implements <a class="el" href="class_i_surface.html#a852184671d98db33f9160b40f5aa5e76">ISurface</a>.</p>

</div>
</div>
<a class="anchor" id="a02f1ff1defc98f28bc58cc6f3419bead"></a><!-- doxytag: member="Subdivision::worldToLocalCoords" ref="a02f1ff1defc98f28bc58cc6f3419bead" args="(const Point3 &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Point3 Subdivision::worldToLocalCoords </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function applies a transformation to convert a coordinate in the world coordinate system to the local coordinate system.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>point to convert to local coordinate system.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a point in the local coordinate system. </dd></dl>

<p>Implements <a class="el" href="class_i_surface.html#a9772fab0f0844c2bff19c6789a298ff0">ISurface</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>engine/include/subdivision/<a class="el" href="_subdivision_8h_source.html">Subdivision.h</a></li>
<li>engine/src/subdivision/Subdivision.cpp</li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Sat Aug 27 2011 15:38:53 for QSculpt by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
